Читать онлайн книгу "Профессиональные компетенции разработки программного обеспечения"

Профессиональные компетенции разработки программного обеспечения
Дмитрий Николаевич Черемнов


Одного знания языка программирования недостаточно для профессиональной разработки программного обеспечения. Нужны ряд компетенций – знаний, методик, навыков владения инструментами. Ключевая информация и рекомендации для будущих разработчиков программного обеспечения и других информационно-технологических специалистов. Лайфхаки для ИТ юниоров, желающих значительно повысить свою квалификацию и зарплату. ИТ "кухня" – технологии, процессы и методологии, необходимые для создания качественного программного продукта.






Введение



Программисты учатся на ошибках других программистов, а потом обучают новых программистов тем же ошибкам.

Я фанат разработки программного обеспечения…

У меня интересная работа технического лидера в компании, разрабатывающей программное обеспечение на заказ для зарубежных и отечественных клиентов.

За долгие годы путем обучения, проб, ошибок, дошел до уровня, когда мне доверяют начинать разработку проекта и доводить его с командой до продакшена.

Я поделюсь своими мыслями, знаниями и опытом в разработке программного обеспечения.




Почему…?


Я задумался, почему несмотря на множество людей с горящими глазами, изучающими или знающими какой-либо язык программирования, остается острая нехватка программистов (например, в нашей и других компаниях дают бонус за успешную рекомендацию кандидата)?

Почему, несмотря на большой объем информации в интернете, сложно понять, что требуется для того, чтобы тебя приняли на работу в компанию, разрабатывающую программное обеспечение?

Почему сейчас, когда компании лояльно относятся к сотрудникам (в нашей компании десяток человек работают удаленно), которые находятся за сотни километров в маленьких городках и успешно работают на ключевых позициях, остается кадровый голод?




Злосчастный круг


К сожалению, проблема студентов и молодых специалистов известна – компании не хотят рисковать и брать на работу людей без опыта, без нужных компетенций.

А без работы невозможно (а точнее очень трудно) получить необходимый опыт.

Злосчастный круг замыкается и его сложно разорвать.

Тебя интересуют информационные технологии?

Ты изучаешь язык программирования и уже пишешь (пусть и простые) программы?

Ты хочешь связать свою профессиональную жизнь с ИТ?

А может ты уже работаешь в ИТ, но тебе нужно значительно повысить свою квалификацию?

Ты сможешь получить концентрат знаний и опыта, тебе не придется блуждать в дебрях интернета и собирать все по крупицам. Ты сможешь за год усвоить и понять основное, что в ином случае достигается годами. Но не обещаю, что это будет легко.




Стремись к профессиональной цели!


Если тебя интересует программирование, информационные технологии и ты находишься в начале профессионального пути – стремись к своей цели!

Получи Чек лист по профессиональным компетенциям (https://info.asvoip.com/pro-sd-check-list.rtf), требуемыми для разработки программного обеспечения.

Чек лист поможет оценить навыки, наметить векторы по развитию профессиональных компетенций разработчика программного обеспечения, которые значительно повысят ИТ квалификацию и помогут открыть дверь в компанию твоей мечты или получить повышение на текущей должности.

Определив свой текущий уровень, сформируй карьерный план и определи ближайшие и долгосрочные цели. Не трать на планирование много времени! План – это список намерений, но не более того.

Профессиональные компетенции разработки программного обеспечения помогут достичь поставленные цели при любой текущем уровне – для уровня курсанта, юниора или разработчика с опытом. Наибольший эффект получите на начальных уровнях, но разработчики среднего уровня, специализируясь на определенных технологиях и уделяя внимание отстающим компетенциям, могут достичь экспертного уровня.

Путь до юниора может занять много времени – от полугода до 2 лет, в зависимости от начального уровня и интенсивности подготовки. Нужно много изучать и практиковать, не менее 10 часов и нескольких дней в неделю (например, 2-3 дня в неделю по 2 часа вечером в будни и 4-6 часов в выходной теории и практики). Такой график сложно, но можно соблюдать по совместительству для учащегося, студента или занятого на основной работе. Естественно, у каждого человека своя скорость усвоения материала и получения практических навыков, кто-то достигнет цели ранее, а кому-то потребуется больше времени.




Звезд с неба не хватал


Может у тебя возникают сомнения, сможешь ли ты достичь своей профессиональной цели – начать работу в ИТ или повысить свою квалификацию?

Может ты думаешь, что многим все дается легко и просто? Вероятно, такие люди есть, но я не из их числа…

Знания мне даются непросто, свой опыт я набирал долго с "кровью и потом" – на работе, вечерами дома, а если меня посетит вдохновение, то иногда и ночью :)

Многие задают вопрос – есть ли польза в книгах, курсах и наставниках? Курсы, книги и учебные материалы, менторы – это ускорители, мотиваторы и тотализаторы, но все зависит от вас самих – вы должны изучать и практиковать!

Первый опыт я получил в школе, кодируя алгоритмы на микрокалькуляторе “Электроника МК-52”, программируя простые игры на микрокомпьютерах “БК-0010” и “ZX Spectrum” на языке Basic. Помимо этого, я провел много времени за компьютерными играми. В университете работал с системой управления базой данных dBase, создавая программу расчета полезных веществ в продуктах питания.

Моя первая работа на должности программист-инженер была в маленьком закрытом городке Казахстана в Курчатове в Институте Атомной Энергии в Национальном Ядерном центре. Курчатов расположен недалеко от ядерного полигона, на полигоне я видел огромные скрюченные, погнутые железобетонные столбы и “атомное” озеро – последствия наземных термоядерных испытаний. Первая реализованная мною база данных, ушедшая в продакшен – “Система учета радиоактивных материалов” для Международного агентства по атомной энергии. Ценным источником знаний по языку программирования С в 1996 году, являлась бумажная распечатка руководства “Язык программирования С” Брайана Кернигана и Денниса Ритчи, по ней я обучался с моим другом и коллегой Цай Евгением. Нашими наставниками по разработке были Инков Александр, Петренко Андрей (передаю им персональный привет!). Позже по документации и книгам изучали C++ и Delphi. В дальнейшем мы работали на С, C++ и Delphi в основном над созданием информационно-управляющих систем для эксперементальных стендов Ангара (http://www.nnc.kz/facilities/angara.html) и EAGLE (http://www.nnc.kz/facilities/eagle.html).

В 2006 году выиграл грант и в Омске в компании Luxoft прошел 4 месячный интенсивный курс по методикам разработки Rational Unified Process, языку программирования Java, Java EE технологиям и базе данных Oracle. После этого сменил специализацию с С++, Delphi на Java стек. Большинство ребят после курса также стали работать Java разработчиками. Переехал в кремневую долину Сибири – в Новосибирск. (Передаю всем знакомым и друзьям из Курчатова, Омска и Новосибирска пламенный привет!).

Начало карьеры может быть сложным, но вам должно нравиться программировать, чтобы получать удовольствие от ИТ учебы в настоящее время и в будущем от работы в ИТ! Чертовски приятно иметь работу, которая интересна и захватывает словно хобби! Иначе, возможно имеет смысл вам найти другое занятие по душе…

Естественно, каждый человек рано или поздно имеет тенденцию терять мотивацию. Практически каждый из нас нуждается периодически в “волшебном пенделе” ;) Рекомендую найти сообщество единомышленников среди изучающих ИТ и ментора из числа опытных разработчиков, которые могут оказать как моральную поддержку, так и дать практические подсказки, советы и помощь в освоении информационных технологий. Разработчики с опытом в свою очередь, оказывая помощь курсантам, могут избежать “выгорания” и прокачать свои навыки по управлению командой и проектом и вырасти до Лидера команды.

Через много лет я достиг своей цели – разработка программного обеспечения в классной ИТ компании в профессиональной команде!

А какова твоя цель?




Я знаю, что ничего не знаю


Оглядываясь назад, я начал обобщать и фиксировать свой опыт.

Теперь я понимаю, что могу указать более короткую дорогу к твоей профессиональной цели, передать свои знания и опыт – это моя новая цель!

Почему я точно знаю, какие знания и опыт требуется в ИТ?

Почему я смог выделить самое важное для юниоров из огромного количества информации?

Потому что я писал программы (Delphi, C, C++) и кодирую сейчас (Java, JavaScript, SQL) на нескольких языках программирования.

Потому что проектировал, программировал, тестировал, внедрял и поддерживал системы с различными технологиями:

REST Services, Web Services, Micro services, JSON, XML…

Для хранения данных использовал различные базы данных:

Oracle, MySQL, MariaDB, PostgreSQL, MongoDB, Cassandra, Redis…

Потому что мы используем самые современные средства разработки:

Jira, Redmine, GitLab, Git, Jenkins, TeamCity, IDEA, Eclipse и пр.

Потому что участвовал в десятке ИТ проектов для стартапов, электронной коммерции, банков, бизнеса в одиночку и в командах от 2 до 10 человек, продолжительностью от 3 месяцев до 3 лет, на роли рядового разработчика, ведущего разработчика или технического лидера.

Потому что у меня есть некоторый опыт фриланса и "домашние" ИТ проекты, на которых я изучаю незнакомые мне технологии.

Потому что я знаю и применяю современные методики разработки:

паттерны, рефакторинг, код ревью, юнит и интеграционное тестирование, основные методологии разработки: XP, Scrum.

Потому что помимо успешных проектов были и провалы, а на ошибках учатся.

Потому что имею несколько сертификатов по ИТ, значимые их них Sun Сertified Programmer for the Java 2 Platform (https://pro-it.asvoip.com/image/Sun_Java.jpg) (SCP) и Oracle PL/SQL Developer Certified Associate (https://pro-it.asvoip.com/image/Oracle_PL_SQL.jpg) (OCA) – интересен факт, что Oracle проглотил солнце в 2009 году.

Потому что прочитал десятки книг и сотни статей по ИТ, часто буду ссылаться на внешние источники знаний, готов сам учиться у других и перенимать опыт.




Нужно бежать со всех ног, чтобы только оставаться на месте


Есть 2 "новости" для новичков в ИТ. Одна – хорошая, вторая – плохая:

• "Плохая новость" – уровень входа в ИТ за последнее десятилетие значительно вырос. Ранее в большинстве случаев требовалось знание одного языка программирования и навык кодирования. Сейчас ИТ компании даже к юниорам выдвигают ряд обязательных требований.

• "Хорошая новость" – некоторые ИТ специалисты по инерции игнорируют важные ИТ навыки. Вы же можете, начав с чистого листа, взять все самое лучшее в свой профессиональный арсенал.

Информационные технологии меняются с поразительной быстротой – чтобы оставаться профессионалом, нужно постоянно изучать, экспериментировать, использовать на практике.

Одного знания языка программирования недостаточно, чтобы вести командную разработку программного обеспечения. Нужны еще ряд профессиональных компетенций – знаний, методик, навыков владения инструментами, которые позволят сделать значимые огромные шаги в профессии разработчика ПО.

У меня эти шаги заняли годы, ты пройдешь их за год – но придется приложить большие усилия.

Не существует "золотой пилюли" для успеха. С 2016 года я прежде всего для себя фиксировал в Wiki конспект ИТ технологий, методологий, инструментов и ссылок на полезные ресурсы. С 2017 года на основе этих материалов, с добавлением практических заданий, постепенно формирую курс, который повысит ИТ квалификацию и поможет открыть дверь в компанию твоей мечты или получить повышение на текущей должности, повысить рейт. Неоднократно материалы курса обновлялись и дополняются в настоящее время. На основе содержания курса сформирована книга, которая указывает ключевые направления профессионального роста для информационно-технологических специальностей и показывает всю современную "кухню" процесса разработки. Материалы курса и книги прежде всего ориентированы на разработчиков ПО, но будут несомненно полезны для тестеров, менеджеров, ИТ администраторов, дизайнеров, владельцев ИТ продуктов – всех участников разработки программного обеспечения.





Конец ознакомительного фрагмента. Получить полную версию книги.


Текст предоставлен ООО «ЛитРес».

Прочитайте эту книгу целиком, купив полную легальную версию (https://www.litres.ru/dmitriy-nikolaevich-/professionalnye-kompetencii-razrabotki-programmnogo-o/) на ЛитРес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.



Если текст книги отсутствует, перейдите по ссылке

Возможные причины отсутствия книги:
1. Книга снята с продаж по просьбе правообладателя
2. Книга ещё не поступила в продажу и пока недоступна для чтения

Навигация